About 1621 letters

About 8 minutes

#anext

Description: Retrieve the next item from an asynchronous iterator (by calling the object's __anext__ method). See also the next function.

async def anext(async_iterator):
    '''
    Retrieve the next item from the asynchronous iterator.
    Raises StopAsyncIteration if there is no next item.

    :param async_iterator: An asynchronous iterator
    :return: The next item from the iterator
    '''

async def anext(async_iterator, default):
    '''
    Retrieve the next item from the asynchronous iterator.
    Returns default if there is no next item.

    :param async_iterator: An asynchronous iterator
    :param default: Default value to return if no next item
    :return: The next item from the iterator or default
    '''

Example:

import asyncio

# Asynchronous iterator
class AsyncIterator:
    def __init__(self, stop):
        self.__stop = stop
        self.__current = 0
    
    async def __anext__(self):
        if self.__current < self.__stop:
            await asyncio.sleep(0.1)  # Simulate asynchronous operation
            self.__current += 1
            return self.__current - 1
        else:
            raise StopAsyncIteration

# Asynchronous function
async def main():
    async_iterator = AsyncIterator(10)
    while (value := await anext(async_iterator, None)) is not None:
        print(value)

# Run
asyncio.run(main())

Updated: 6/9/2025

Author: PlanC

Created: 6/9/2025